package com.hllxd.hism.passport.login.gateway.service;

import com.hllxd.hism.passport.login.gateway.controller.LogOnQRCodeResult;
import com.hllxd.hism.passport.login.gateway.model.*;

/**
 * @author xiyong.lxy
 * @date 2021-06-16 11:08
 */
public interface PassportService {
    /**
     * 发送动态码
     * @param req 请求参数
     * @return 返回动态码
     */
    DynamicCodeResponse sendDynamicCode(DynamicCodeRequest req);

    /**
     * 发送动态码
     * @param phoneNumber 电话号码
     * @param plat 平台的ID
     * @return 返回动态码
     */
    DynamicCodeResponse sendDynamicCode(String phoneNumber, Integer plat);

    /**
     * 添加用户
     * @param dto 用户信息
     * @return 返回动态码
     */
    Long addUser(UserEntity dto);

    /**
     * 登录动态码
     * @param req 请求参数
     * @return 登录返回
     */
    LogOnDynamicCodeResponse logOnDynamicCode(LogOnDynamicCodeRequest req);

    /**
     * 手机短信登录
     * @param phoneNumber 手机号码
     * @param dynamicCode 动态码
     * @param plat 平台ID 1
     * @return code
     */
    LogOnDynamicCodeResponse logOnDynamicCode(String phoneNumber,String dynamicCode,Integer plat);

    /**
     * PC账号登录
     * @param username 用户名
     * @param password 密码
     * @param plat 平台ID 1
     * @return code
     */
    LogOnDynamicCodeResponse logOnAccountCode(String username, String password, Integer plat);

    /**
     * 根据动态码登录
     * @param username 手机号码
     * @param plat 平台ID 1
     * @return
     */
    LogOnDynamicCodeResponse logOnSSO(String username, Integer plat);

    String logOff(String accessToken);

    String getQRCode();

    LogOnQRCodeResult logOnQrCode(String content, String accessToken);

    String getToken(String content);

}
